package com.example.siteservices.service;

import com.example.siteservices.dto.FileFilterRequest;
import com.example.siteservices.dto.FileRequest;
import java.util.List;

import com.example.siteservices.dto.PhotoFileRequest;
import org.springframework.web.multipart.MultipartFile;

public interface FileService {
    List<FileRequest> getAllFiles();

    /**
     * 根据筛选条件获取文件列表
     *
     * @param fileFilterRequest 筛选条件请求体
     * @return 返回筛选后的文件列表
     */
    List<FileRequest> getAllFilesWithFilters(FileFilterRequest fileFilterRequest);


    /**
     * 根据筛选条件获取图片文件列表
     *
     * @param fileRequest 筛选条件请求体
     * @return 返回筛选后的文件列表
     */
    List<FileRequest> getPhotoFilesList(PhotoFileRequest fileRequest);

    FileRequest getFileById(Integer id);

    /**
     * 上传文件
     *
     * @param file 上传的文件
     * @return 返回文件路径
     */
    String uploadFile(MultipartFile file) throws Exception;

    /**
     * 保存文件信息
     *
     * @param fileRequest 文件信息
     * @return 返回保存的文件信息
     */
    FileRequest saveFileInfo(FileRequest fileRequest) throws Exception;

}
